// https://leetcode.cn/problems/find-all-anagrams-in-a-string/description/
// class Solution 
// {
// public:
//     bool compare(unordered_map<char, int>& _cmp,
//                  unordered_map<char, int>& _map) 
//     {
//         if (_cmp.size() != _map.size()) {
//             return false;
//         }
//         for (auto& map : _map) {
//             auto iter = _cmp.find(map.first);
//             if (iter == _cmp.end()) {
//                 return false;
//             }
//             if (_map[map.first] != _cmp[map.first]) {
//                 return false;
//             }
//         }
//         return true;
//     }
//     vector<int> findAnagrams(string s, string p) 
//     {
//         // 窗口的大小是固定的
//         unordered_map<char, int> _map;
//         unordered_map<char, int> _cmp;
//         vector<int> _result;
//         for (auto e : p) 
//         {
//             _map[e]++;
//         }
//         int left = 0, right = 0;
//         for (right; right < s.size(); right++)
//         {
//             _cmp[s[right]]++; // 进窗口
//             if ((right - left + 1) > p.size()) 
//             {
//                 // 出窗口
//                 _cmp[s[left]]--;
//                 if (_cmp[s[left]] == 0) {
//                     _cmp.erase(s[left]);
//                 }
//                 left++;
//             }
//             if (compare(_cmp, _map)) 
//             {
//                 _result.push_back(left);
//             }
//         }

//         return _result;
//     }
// };
